Scroll to navigation

drbdsetup(8) DRBD - кластер дисків drbdsetup(8)

ІМ'Я

drbdsetup - інструмент для встановлення DRBD

СИНТАКСИС


drbdsetup device disk lower_dev meta_data_dev meta_data_index [ -d size ] [ -e err_handler ]
drbdsetup device net local_addr [ :port ] remote_addr [ :port ] protocol [ -c time ] [ -i time ] [ -t val ] [ -S size ] [ -k count ] [ -d discon_handler ]
drbdsetup device syncer [ -k ] [ -g group ] [ -r rate ] [ -e extents ]
drbdsetup device disconnect
drbdsetup device detach
drbdsetup device down
drbdsetup device primary [ -h ] [ -t ] [ -d ]
drbdsetup device secondary
drbdsetup device on_primary [ -h ] [ -t ]
drbdsetup device invalidate
drbdsetup device invalidate_remote
drbdsetup device wait_connect [ -t wfc_timeout ] [ -d degr_wfc_timeout ]
drbdsetup device wait_sync [ -t wfc_timeout ] [ -d degr_wfc_timeout ]
drbdsetup device state
drbdsetup device cstate
drbdsetup device resize [ -d size ]
drbdsetup device show

ОПИС

drbdsetup використовується для встановлення асоціації між DRBD пристроєм та його низькорівневими блочним пристроєм, для встановлення пар DRBD пристроїв, щоб здійснювати дзеркальне відображення їх низькорівневих блочних пристроїв і для перевірки налаштування працюючого DRBD кластеру.

ПРИМІТКА

drbdsetup є низькорівневий інструмент до DRBD кластеру. Він використовується datadisk, drbdadm та drbd скриптом для зв'язку з драйвером пристрою.

КОМАНДИ

Кожна підкоманда drbdsetup потребує аргументів і має свою власну порцію опцій. Усі значення мають свою розмірність по замовчуванню, яку можна змінити суфіксами K, M or G. Їх розмірність визначається звичним шляхом (тобто: K = 2^10 = 1024)

DISK

Зв'язує пристрій з низькорівневим пристроєм для збереження на ньому блоків даних. Опція -d (чи --disk-size) повинна вживатись тільки тоді коли не бажаєте використовувати максимально можливий розмір зумовлений розміром низькорівневих дисків. Якщо не вживати -d пристрій буде готовий до використання одразу після під'єднання до свого партнера. (Дивіться команду NET.)


Ця опція може змінити метод яким DRBD визначає розмір. Якщо ви бажаєте використовувати пристрій перед першим з'єднанням з партнером використайте цю опцію для вказання розміру DRBD пристрою. По замовчуванню в KB (1 KB = 1024 bytes).


Якщо низькорівневий пристрій повідомляє помилку до DRBD, DRBD може послати помилку до верхнього рівня операційної системи, створити паніку ядра, чи від'єднати пристрій і проводити всі наступні операції запису/зчитування використовуючи партнера. Допустимі значення err_handler: pass_on, panic і detach.

NET

Встановлює пристрій для прослуховування local_addr:port очікуючи з'єднання і для намагання встановити зв'язок з remote_addr:port. Якщо порт пропущений по замовчуванню використовується 7788.

Поверх TCP/IP з'єднання використовуються спеціальні протоколи. Допустимими протоколами є: А, В та С.

Протокол А: операція запису вважається завершеною, якщо дані досягли локального диску та локальної вихідної черги tcp.

Протокол В: операція запису вважається завершеною, якщо дані досягли локального диску та віддаленої вхідної черги.

Протокол С: операція запису вважається завершеною, якщо дані досягли локального та віддаленого диску.


У випадку неможливості зв'язку з віддаленим DRBD пристроєм негайно, DRBD буде продовжувати спроби зв'язатись. З допомогою цього параметру можна вказати час між двома спробами. По замовчуванню значення є 10 секунд, крок 1 секунда.


Якщо зв'язок TCP/IP між парою пристроїв DRBD є вільним більш ніж time секунд, DRBD буде генерувати пакети keep-alive, для перевірки справної роботи партнера. По замовчуванню 10 секунд, крок 1 секунда.


Якщо партнерський вузол не може відіслати пакет з відповіддю через time десятих секунди, партнерський вузол вважається не робочим і тому TCP/IP зв'язок до нього розривається. Це значення мусить бути меншим ніж connect-int та ping-int. По замовчуванню є 60 = 6 секунд, крок 0.1 секунди.


Розмір вихідної черги для зберігання TCP пакетів перед відправкою на другорядний вузол, на котрий з мережевих причин не може передати. Можна вказати більше чи менше значення. Більше значення краще для збільшення пропускної здатності при використанні протоколу А через достатньо постійну мережу. Дуже великі значення ~1M можуть привести до проблем. Пам'ятайте чим більша асинхронність тим більше даних пропаде при втраті основного вузла. А значення менші 32K не доречні. По замовчуванню 128K. По замовчуванню крок K.


У випадку зупинки другорядного вузла і неспосібності завершити один запис після count спроб з інтервалами timeout, він відключається від кластеру. (основний вузол переходить у вироджений стан) По замовчуванню 0, що відключає цю властивість.


З цією опцією максимальне число запитів запису між двома бар'єрами є обмежене. Краще встановити такою ж, як --max-buffers. Значення менші 100 істотно зменшують продуктивність. По замовчуванню 2048.


Опція обмежує максимальне число сторінок черги для прийому запиті запису другорядним вузлом DRBD. Повинно бути встановлене такою ж, як --max-epoch-size. Малі значення можуть зменшити продуктивність. (Мінімальне 32). по замовчуванню 2048.


Коли зв'язок з партнером розривається, DRBD може перейти в вироджений режим з одним вузлом, намагатись відновити зв'язок чи припинити ввід/вивід. Допустимі значення stand_alone, reconnect та freeze_io. По замовчуванню відновити зв'язок reconnect.

SYNCER

Змінює синхронізаційні параметри сервісу пристрою під час роботи. Не міняє mentioned параметрів.


Для гарантування належної роботи програм поверху DRBD, є можливим обмежити розмір каналу, що використовується для синхронізації. По замовчуванню 250KB/sec, крок по замовчуванню 1KB/sec.


Опція відключає автоматичний старт синхронізаційного процесу, що відбувається одразу після з'єднання DRBD пристроїв.


Синхронізація всіх пристроїв в одній групі проводиться паралельно. Доступ групами здійснюється послідовно. Вам потрібно запобігати, щоб низькорівневі пристрої розміщені на одному фізичному носії синхронізуватись паралельно. По замовчуванню всі належать до групи 0 і синхронізуватимуться паралельно.


DRBD здійснює автоматично визначення робочої області. Цим параметром контролюється скільки місця виділяється для роботи (=active set). Кожна одиниця відповідає 4M робочого диску (=низькорівневого пристрою). У випадку неочікуваної зупинки основного вузла розмір даних визначений опцією мусить бути розсинхронізований до часу зупинки вузла. Структура даних зберігається в області службових даних, тому кожна зміна робочої області приводить до операції запису на пристрій з службовими даними. Велике число extents дає довший період десинхронізації але менші поновлення до службових даних. По замовчуванню extents є 127. Мінімум 7, максимум 3843.

PRIMARY

Встановлення пристрою в основний стан, що означає можливість відкриття його програмами (чи файловими системами) для читання та запису. Дані, що пишуться на пристрій в основному стані дзеркально відображаються на пристрій в другорядному стані.

Не можливо встановити обидва пристрої з'єднаної DRBD пари в основний стан.


Встановлює що стан змінений адміном і при перезавантажені кластеру має перевагу над рішеннями прийнятими іншими партнерами.


Визначає, що стан змінився по причині того, що вузол був відсутній при старті кластеру (кластер запустивсь в виродженому стані). По відношенню до кластера це переважає рішення зроблене управлінням кластера.


Перехід в основний стан не відбувається коли є не завершена локальна реплікація. Використовуючи цю опцію вузол завжди переводиться в основний стан. ВИКОРИСТОВУЙТЕ ЇЇ ТІЛЬКИ КОЛИ ЗНАЄТЕ, ЩО РОБИТЕ.

SECONDARY

Встановлює пристрій в другорядний стан. Ця команда не виконається коли хоча б одна програма (чи файлова система) має відкритий доступ на запис на цей пристрій.

Однак можливо, що обидва пристрої з'єднані в DRBD пару є в другорядному стані.

ON_PRIMARY

Це встановлює додаткову опцію, що приводить до наступного переходу в основний стан. Опція дійсна тільки поки пристрій не зв'яжеться з своїм партнером. Можливі опції: --inc-human та --inc-timeout-expired.

Ця команда є для зручності. Ефект від неї той же, як би вказати цю опцію до команди primary напряму. Для детального опису двох опцій дивіться команду primary.

NVALIDATE

Насильно переводить локальний пристрій, пари пристроїв підключених до DRBD в стані їх партнерської синхронізації, що означає копіювання всіх блоків даних з партнера на локальний пристрій.

Ця команда не виконається, коли пристрої не є частиною пари з'єднаних пристроїв.

INVALIDATE_REMOTE

Насильно переводить локальний пристрій DRBD пристроїв в стан джерела їх синхронізації, що означає копіювання всіх блоків даних з локального пристрою до партнера.

WAIT_CONNECT

Продовжує тоді коли пристрій може зв'язуватись з своїм партнерським пристроєм.

Команда видасть помилку, коли пристрій не зможе зв'язатись з своїм партнером на протязі timeout секунд. Якщо партнер працював перед перевантаженням вузла, використовується wfc_timeout. Якщо партнер відключивсь перед перевантаженням вузла, використовується degr_wfc_time-out. По замовчуванню значення wfc_timeout рівне 0, що значить чекати вічно. Значення по замовчуванню для degr_wfc_timeout рівне 120 секунд.

WAIT_SYNC

Продовжує тоді коли пристрій виходить з будь-якого синхронізаційного стану, і повертається в стан зв'язку. Опції такі ж, як з командою wait_connect.

DISCONNECT

Видаляє інформацію встановлену командою NET з пристрою. Тобто переводить пристрій в від'єднаний стан, що означає не прослуховування більше мережі.

DETACH

Видаляє інформацію встановлену командою DISK з пристрою. Це приводить до від'єднання пристрою від низькорівневого пристрою.

DOWN

Видаляє всю конфіґураційну інформацію з пристрою і переводить його назад в не налаштований стан.

STATE

Показує поточний стан пристрою і його партнера (local/peer).

CSTATE

Показує поточний стан зв'язку пристрою.

RESIZE

Це приведе до перевірки розміру низькорівневих дисків. Щоб здійснити збільшення диску робочої системи потрібно розширити низькорівневі диски на обох пристроях та викликати команду resize на обох вузлах.

SHOW

Показує всю доступну конфіґураційну інформацію пристрою.

ПРИКЛАДИ

ВСТАНОВЛЕННЯ ПАРИ ПРИСТРОЇВ

В цьому прикладі комп'ютери, tc1 і tc2, сполучені прямим кабелем через інтерфейс 192.168.37.2 (tc1) і 192.168.37.3 (tc2). Включимо /dev/hda6 у віртуальний диск.

На tc1 виконуємо


$ drbdsetup /dev/drbd0 disk /dev/hda6
$ drbdsetup /dev/drbd0 net 192.168.37.2 192.168.37.3 B
На tc2 виконуємо:


$ drbdsetup /dev/drbd0 disk /dev/hda6
$ drbdsetup /dev/drbd0 net 192.168.37.3 192.168.37.2 B
$ drbdsetup /dev/drbd0 primary
$ cat /proc/drbd
version: 0.7.0 (api:xx/proto:yy)

0: cs:Connected st:Primary/Secondary ns:0 nr:0 dw:0 dr:0 of:0
1: cs:WFConnection st:Secondary/Unknown ns:0 nr:0 dw:0 dr:0 of:0
Через /proc/drbd ми можемо бачити, що наша пара пристроїв є з'єднана та пристрій є готовий до використання на tc2.

Тепер можна запускати програми поверху віртуального диску:


$ mkfs -b 4096 /dev/drbd0
$ mount /dev/drbd0 /mnt/mountpoint

ЗНІМОК ДИСКУ ЗАПИСАТИ НА ТРЕТЮ МАШИНУ

В цьому прикладі комп'ютер, tc1 і tc2, є з'єднані і tc2 є основним вузлом пристрою /dev/drbd0 Знімок цього пристрою потрібно записати на tc3, /dev/hda6.

Нам потрібно підготувати tc3:


$ drbdsetup /dev/drbd0 disk /dev/hda6
$ drbdsetup /dev/drbd0 net tc3 tc2 B
На tc2 ми виконуємо


$ drbdsetup /dev/drbd0 disconnect
$ drbdsetup /dev/drbd0 net tc2 tc3 B --sync-rate 4M
$ drbdsetup /dev/drbd0 replicate
$ drbdsetup /dev/drbd0 wait_sync
$ drbdsetup /dev/drbd0 disconnect
$ drbdsetup /dev/drbd0 net tc2 tc1 B
$ drbdsetup /dev/drbd0 replicate
Так як знімок диску береться без переведення диску в стабільний стан, потрібно виконати на tc3:


$ drbdsetup /dev/drbd0 down
$ fsck /dev/hda6
$ mount /dev/hda6 /some/mountpoint

ВЕРСІЯ

Цей документ коректний для версії 0.7.* пакету DRBD.

АВТОРИ

Написаний Пилипом Рейзнером (Philipp Reisner) <philipp.reisner@linbit.com>.

ПОВІДОМЛЕННЯ ПОМИЛОК

Повідомляйте про помилки на <drbd-user@lists.linbit.com>.

АВТОРСЬКІ ПРАВА

Copyright (c) 2001 Philipp Reisner. Це вільні програми; дивіться джерельні коди для встановлення прав копіювання. Нема ніяких гарантій; навіть для зручності використання в конкретному випадку.

ПОДІБНІ ТЕМИ

drbd - кластер дисків, drbdadm(8), drbd.conf(5), drbd(8), datadisk(8)

v 0.7.* переклад: альфа версія 2007-10-27-16:31 © 2005-2007 DLOU, GNU FDL